System and method for sending SMS and text messages

ABSTRACT

A system and method for sending SMS messages between wireless communications networks. SMS messages are sent to a hardware device in the originating wireless network, which then forwards the message to a management server via the Internet. The management server forwards the message to the appropriate device in the receiving wireless network, which then sends the message to the intended recipient. Replies can then be sent to the originator of the message. Users can also send messages from a computer to a cellular telephone and receive messages sent from a cellular telephone on a computer via email or an HTML based interface. The system can also be used to send and receive messages from a wireless carrier&#39;s SMSC.

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims priority from U.S. Provisional PatentApplication No. 60/419,804, filed in the United States Patent andTrademark Office on Oct. 17, 2002, and entitled System and Method forSending SMS and Text Messages.

FIELD OF INVENTION

[0002] The present invention relates generally to wirelesscommunications. More particularly, the present invention discloses asystem and method for sending Short Message Service (SMS) messages fromone cellular network to another cellular network.

BACKGROUND OF THE INVENTION

[0003] Wireless and other communication networks are well known and muchhas been written about them. The organization of such networks intocells is also well known. Text messaging or Short Message Service isprovided by the operators of such wireless communication networks, wheresuch networks have the capability of supporting such messaging. ShortMessage Services, or more simply put “SMS”, enables a user to sendmessages to and receive text messages from other users of a similarcommunications (cellular) network. The SMS function attempts to delivera message to a cellular telephone whenever the cellular telephone isregistered to the network, even when the terminal is engaged in a voiceor data call.

[0004] The cellular telephone may also roam throughout the network andstill be capable of sending and receiving messages. A cellular telephoneconfigured for SMS provides methods for the user to receive, read,write/edit, clear, send, and save messages.

[0005] While SMS is convenient for users communicating within the samenetwork, a user wishing to communicate a text message to a person in adifferent network often experiences problems. These problems can be assimple as the sender's and receiver's respective carriers deciding notto cooperate and thus not allow the transmission of SMS messages betweenthe networks, or more complicated, such as incompatible digitalstandards or protocol. The problem of incompatible networks is even moreapparent when trying to send messages to a user in a country differentfrom the sender.

[0006] Even when communications between networks is possible, themessages are sent through a network bridge and some service providersassign a low priority to SMS messages. This can result in a significanttime between the message being sent and the message being received.

[0007] Thus there is a need for a method that allows users to send SMSmessages between incompatible and distant cellular networks.

DISCLOSURE OF THE INVENTION

[0008] It is an object of this invention to provide a system that willallow users to send SMS messages between wireless communication networksover the Internet.

[0009] It is also an object of this invention to provide a systemwherein a user can send an SMS message using a cellular telephone, andthe recipient can retrieve the message using a personal computer.

[0010] It is a further object of this invention to provide a systemwherein a user can send an SMS message using a personal computer, andthe recipient can receive the message on a cellular telephone.

[0011] Disclosed herein are a system for and a method of sending SMSmessages between cellular networks and other wireless communicationnetworks. As used herein, the term cellular shall be construed toinclude other types of wireless communication, and the use of the termwireless shall be construed to include cellular communication as well.Additionally, as used herein the term SMS message and the term messageshall be construed to mean text messages of the type that are supportedby the short message services offered by cellular communicationproviders.

[0012] The system disclosed herein is comprised of a number of physicalcomponents. The physical components of the system of current inventionare the SMS devices (user devices) hardware devices, and managementservers. Most of the physical components of the system disclosed hereinare programmed to function according to an iterative decision makingmethodology.

[0013] The user device is used to initiate and/or terminate SMSmessages. The user device is generally a cellular telephone capable ofsending and receiving SMS messages. When using the system disclosedherein, SMS messages can also be initiated and received on a personalcomputer either as email or in a Hyper Text Markup Language (HTML) basedinterface.

[0014] The hardware devices are used to forward SMS messages fromcellular communications networks to the management server. One type ofhardware device is referred to as an sms device herein. The sms devicesare comprised of cellular telephones that are connected to the Internetvia computers. The computer of an sms device is generally a PC stylecomputer that is connected to the Internet using standard connectionmeans. The hardware devices are located in a plurality of cellulartelephone networks. The sms devices can be used to forward messages thatare sent to the server from another sms device or from a user's computerto the intended recipient, and they can be used to forward SMS messagesfrom a user's cellular telephone to the management server.

[0015] Another type of hardware device is referred to herein as agateway device. The gateway devices of the current invention are similarto the sms devices, but they are used only for messages originating froma cellular telephone that will be received on a cellular telephone. Thegateway devices are programmed to provide the management server withinformation concerning the routing of the message, which is not providedby the sms devices.

[0016] The number of hardware devices in any given network is determinedby the anticipated service demand and the desired level of service forthat given network. Ultimately, devices could be setup linking more andmore networks, in more countries, thus creating one worldwidehomogeneous communications network.

[0017] The management servers are computers that are set up on theInternet network for worldwide access. Management servers are programmedto complete a variety of tasks. These tasks include routing the SMSmessages to the desired recipient, providing an email and HTML basedinterface with a user's computer, providing a link between wirelesscommunications carriers' Short Message Service Centers (SMSC) and thesystem that is the subject of this application, and tracking users'account information. Management services do not have to be located inany specific network, and one management server can be used to pass SMSmessages between a plurality of networks.

[0018] A user desiring to send a message to a person in a differentnetwork can key in his or her text message and send that message to thehardware device in his or her network. The cellular telephone on thehardware device receives the message and sends it to the computer.

[0019] The hardware device computer then sends the message to themanagement server via the Internet. The management server forwards themessage to the hardware device in the desired recipient's network, overa previously established route or by establishing a new route, and themessage is forwarded to the recipient via the cellular telephone of thehardware device.

[0020] The system disclosed herein includes a number of algorithms thatare programmed into various physical components of the system throughthe use of software, hardware, or firmware. These programs enable thevarious physical components of the system to send, receive, and forwardmessages.

[0021] The system disclosed herein enable the person who was not able tosend a message to a certain network, to not only send from a mobilephone from another carrier network, but also send and receive messagesfrom one of the client programs from any computer anywhere worldwide.Additionally, the system disclosed herein allows users to send messagesto distant networks without the worry that the message will receive alow priority for transmission over a network bridge, thereby alleviatingthe concern that the message may be unduly delayed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The several objectives and features of the present invention willbecome more readily apparent from the following detailed descriptiontaken in conjunction with the accompanying drawings in which:

[0023]FIG. 1a shows the routing path for an SMS message sent between twocountries using methods that are currently available.

[0024]FIG. 1b shows the routing path for an SMS message sent between twocountries using the system and method disclosed herein.

[0025]FIG. 2 is a block diagram showing the operational algorithm of thesms devices, according to the disclosure herein.

[0026]FIG. 3 is a block diagram showing the operational algorithm of theuser client program, on a client's computer, according to the disclosureherein.

[0027]FIG. 4 is a block diagram showing the operational algorithm forthe management servers, according to the disclosure herein.

[0028]FIG. 5 is a block diagram showing the operational algorithm forthe SMS router, according to the disclosure herein.

[0029]FIG. 6 is a block diagram showing the operational algorithm forthe Gateway devices, according to the disclosure herein.

[0030]FIG. 7 is a block diagram showing the operational algorithm forthe bridging program, according to the disclosure herein.

[0031]FIG. 8 is a block diagram showing the operational algorithm for aprogram that allows clients to send and retrieve messages using an HTMLbased interface, according to the disclosure herein.

[0032]FIGS. 9a-9 c show examples of virtual routing diagrams accordingto the current invention.

[0033]FIG. 10 is a block diagram showing the operational algorithm for aprogram that allows clients to send and retrieve messages via theclient's email account, according to the disclosure herein.

DETAILED DESCRIPTION OF THE INVENTION

[0034] Turning now to the drawings, the invention will be described inpreferred embodiments by reference to the numerals of the drawingfigures wherein like numbers indicate like parts.

[0035] According to the current technology shown in FIG. 1a, an SMSmessage sent between cellular networks in two separate countries mustfirst go through the local wireless network provider 104 of the sender'snetwork, over the long distance Public Switch Telephone Network, andthrough the wireless network provider 106 of the recipients networkbefore reaching the recipient. This can cause great delays in therecipient getting the message because service providers often assign lowpriority to inter-carrier SMS messages, and consequently send themduring periods of off peak use.

[0036] The physical components of the system disclosed herein can beseen in FIG. 1b. According to the disclosure herein, a person desiringto send an SMS message to a receiver in a different network sends themessage to an hardware device, which is a cellular telephone 114 and acomputer 116, in his or her network. The hardware device receives themessage via the cellular telephone 114 and sends the message over theInternet via a server/router 118 to a hardware device in the desireduser's network/country. The message is then sent to the user through thehardware device, which is also a cellular telephone 122 and a computer120 and wherein the telephone 122 is a part of the receiver's network.

[0037] Also shown in FIG. 1b, the current invention will allow a user tosend text messages to a cellular telephone from a personal computer 113via the Internet and to receive text messages from a cellular telephoneon a personal computer. When using the personal computer option, a usercan send and receive messages as an email or using an HTML basedinterface.

[0038] In one embodiment of the invention disclosed herein, when a userdesires to use the system of the current invention, he or she must firstset up an account. Accounts can be set up on the Internet by accessing aweb page of a service provider using the system disclosed herein, or bycontacting the customer service representatives of such providers. Whenthe user sets up an account, he or she provides the telephone number ofhis or her cellular telephone that will be used to send SMS messages,and the telephone numbers of the people that will be receiving messages.The user will then assign a recipient identification code to eachintended recipient. The recipient identification codes will beprogrammed into a data file in the management server and used forrouting SMS messages. Additional recipients can be added by accessingthe provider through the Internet or contacting the customer servicerepresentative. Users can also set up their accounts to send and receivemessages on the user's computer.

[0039] One method for debiting users of the current invention is the useof prepaid calling cards, having a finite value. Each card has a uniqueidentification code assigned to it, and that code or personalidentification number (PIN) is programmed into the management server.When a person desiring to send a text message, connects to the hardwaredevice in his or her network, he or she sends the identification codeassigned to his or her card as part of the SMS message. After ensuringthat the intended recipient has received the message, the managementserver deducts the cost for sending the SMS message. The first time auser sends a message after purchasing a prepaid card, he or she entersthe PIN. The PIN saved in a user data file and the value of the card iscredited to that users account. Credit is deducted from the accountevery time a message is sent successfully.

[0040] Other billing methods can also be used, such as assigningindividual users a unique identification code and sending bills to usersbased on the number and length of messages sent during a pre-specifiedperiod of time or pre-purchasing credits for sending SMS messages.

[0041] According to the disclosure herein an SMS message that originatesfrom a sender's telephone 112 is routed to the telephone 114 that ispart of the hardware device. The telephone is connected to the computer116 using commercially available data cables and software drivers, andthe computer is connected to the Internet using standard connectionmeans. Together, the telephone and the computer make up the hardwaredevice. The hardware devices are located within the cellular networks.

[0042] The hardware device receives messages from a telephone in thecellular network and sends the messages and the client information tothe management server 118, which then sends the message to a hardwaredevice in the desired receiver's network.

[0043] The hardware device also checks for messages, from the managementserver, that are addressed to the cellular network in which the hardwaredevice is located. If there are incoming messages for recipients in thecellular network where the hardware device is located, the hardwaredevice will forward the message to the recipient's cellular telephone.If the recipient is located outside of his or her home network, andthere is a hardware device in the network where the recipient islocated, the message will be routed to the device in the network wherethe recipient is located. There are multiple hardware devices located ineach cellular network to establish a method of virtual routing so that asingle hardware device can be used to provide a service to multipleusers.

[0044] One type of hardware device is the sms device. The sms device canreceive SMS messages from cellular telephones and it can be used toforward SMS messages originate from any type of user device. Referringto FIG. 2, the sms devices in both the sending and receiving networksare programmed to use the following event-driven algorithm foroperations:

[0045] sms Device Algorithm

[0046] 1. Determine status of phone and go to 2.

[0047] 2. Wait for user input.

[0048] a. If there is user input 201, go to 3.

[0049] 3. Is connection 202 requested.

[0050] a. If yes, log into management server 203 and go to 4.

[0051] b. If no, loop to 1.

[0052] 4. Check for stored messages 204.

[0053] a. If there are stored messages send them to management server205 and go to 5.

[0054] b. If there are no stored messages, go to 5.

[0055] 5. Check for messages from management server 206.

[0056] a. If there are messages from management server, receive themessages 207 and send the messages one at a time through the phone 208,then go to 6.

[0057] b. If there are no messages from the management server, go to 7.

[0058] 6. Determine if messages were sent successfully 209.

[0059] a. If messages were sent successfully, send success message tomanagement server 211, and go to 9.

[0060] b. If messages were not sent successfully, send error message tomanagement server 210, and go to 9.

[0061] 7. Check for incoming messages from phone 212.

[0062] a. If there are incoming messages receive the messages 213 and goto 8.

[0063] b. If there are no incoming messages, go to 9.

[0064] 8. Check connection to management server 214.

[0065] a. If connected to management server, send messages to managementserver 215 and go to 9.

[0066] b. If not connected to management server, store messages untilconnection is established 216 and go to 9.

[0067] 9. Determine if disconnection is requested 217.

[0068] a. If disconnection is requested, stop 218.

[0069] b. If disconnection is not requested, go to 10.

[0070] 10. Determine if a connection is established with the managementserver 219.

[0071] a. If a connection is established, loop to 5.

[0072] b. If no connection is established, go to 11.

[0073] 11. Determine if a connection to the management server has beenrequested 220.

[0074] a. If a connection has been requested, log into management server203 and loop to 4

[0075] c. If a connection has not been requested, loop to 7.

[0076] Another type of hardware device known as a gateway can also beused in the system described herein. A gateway is a hardware device thatis capable of routing phone to phone SMS messages and providing useraccount information to the management server (unlike the sms deviceswhich forward messages with no account information). Referring to FIG.6, the gateways are programmed to use the following event-drivenalgorithm for operations:

[0077] Gateway Algorithm

[0078] 1. Wait for user input.

[0079] a. If there is user input 601, go to 2.

[0080] 2. Determine if a connection is requested 602.

[0081] a. If a connection is requested, log into management server 603and go to 3.

[0082] b. If a connection is not requested, loop to 1.

[0083] 3. Check for stored messages 604.

[0084] a. If there are stored messages send messages to managementserver 605 and go to 4.

[0085] b. If there are no stored messages, go to 4.

[0086] 4. Check for messages from the management server 606.

[0087] a. If there are messages from the management server, go to 5.

[0088] b. If there are no messages from the management server, go to 6.

[0089] 5. Determine if the message is from the smsrouter program 607.

[0090] a. If the message is from the smsrouter program, send the messagethrough phone 608 and go to 8.

[0091] b. If the message is not from the smsrouter program, discard themessage 609 and go to 8.

[0092] 6. Check for messages from the device phone 610.

[0093] a. If there is a message from the device phone, receive themessage 611 and go to 7.

[0094] b. If there is no message from the device phone, go to 8.

[0095] 7. Check for a connection to the Management server 612.

[0096] a. If there is a connection, send the message to the smsrouterprogram 613 and go to 8.

[0097] b. If there is no connection, store the message until aconnection is established 614 and go to 8.

[0098] 8. Determine if a disconnection is requested 615.

[0099] a. If a disconnection is requested, disconnect and stop 616.

[0100] b. If a disconnection is not requested, go to 9.

[0101] 9. Check for a connection to the Management server 617.

[0102] a. If there is a connection, go to 4.

[0103] b. If there is no connection, go to 10.

[0104] 10. Determine if a connection is requested 618.

[0105] a. If a connection is requested, go to 3.

[0106] b. If a connection is not requested, go to 6.

[0107] The system disclosed herein allows text messages to be sent andreceived on a user's computer via email or an HTML based interface.These messages can be sent from the computer to the intended recipient'scellular telephone, or sent from a cellular telephone and reviewed on acomputer. The user's computer is programmed to use the followingevent-driven algorithm, which is referred to herein as “Web SMS user.”Referring the user's computer is programmed to use the following eventdriven algorithm for operations when sending and receiving text messageson the system disclosed herein:

[0108] WEB SMS User Algorithm

[0109] 1. Wait for user input.

[0110] a. If there is user input 301, go to 2.

[0111] 2. Check for a connection request 302.

[0112] a. If a connection is requested, log into management server 303and go to 3.

[0113] b. If a connection is not requested, loop to 1.

[0114] 3. Wait for user input

[0115] a. If there is user input 304, go to 4.

[0116] 4. Check for a message send request 305.

[0117] a. If there is a message send request, send message to managementserver 306 and go to 5.

[0118] b. If there is no message send request, go to 5.

[0119] 5. Check for incoming messages 307.

[0120] a. If there are incoming messages, receive those messages 308,display those messages 309, and go to 6.

[0121] b. If there are no incoming messages, go to 6.

[0122] 6. Determine if there is disconnect request 310.

[0123] a. If there is a disconnect request, disconnect and stop 311.

[0124] b. If there is no disconnect request, loop to 3.

[0125] The management server routes messages from the hardware device inthe sender's network to the sms device in the receiver's network(devices) and to a user's personal computer (for those users that electthis option). The management server also maintains the accountinformation for each client, such as credit and message storage.

[0126] Messages can be sent through the management server to currentclients via personal computer (users) or the sms devices in the client'scellular network (device), and to the cellular/SMS phones ofnon-clients. Non-clients can also send return messages to currentclients. Once a client sends a message to a non-client, a route isestablished through one of the sms devices. Subsequently non-clients arethen able to send to that client through that particular sms device.

[0127] While one management server is capable of supportingcommunications between numerous networks, it is not envisioned that thenumber of servers be limited to one. Instead, the number of servers usedfor the system will be based on the number of people who use the system,the anticipated traffic load on the system, and the desired performancelevel of the system.

[0128] Management servers are programmed to perform a number of tasks,but the main program for operation of the management server is shownbelow as “Management Server.” Referring to FIG. 4, the managementservers are programmed to use the following event driven algorithm foroperations:

[0129] Management Server Algorithm

[0130] 1. Check for incoming connections 401.

[0131] a. If there is a new connection 402, authenticate the connectionby getting the log in information 403, load the user/device profile 404and go to 2.

[0132] b. If there is no new connection, check for messages onestablished connections, 407 and go to 3.

[0133] 2. Check for stored messages for the user/device that establishedthe new connection 405.

[0134] a. If there are stored messages send the messages 406 and go to3.

[0135] b. If there are no stored messages, check for messages onestablished connections 407, and go to 3.

[0136] 3. Check for incoming messages 408.

[0137] a. If there is an incoming message, go to 4.

[0138] b. If there is no incoming message, loop to 1.

[0139] 4. Determine if the message an SMS message 409.

[0140] a. If it is an SMS message, send the SMS message to the SMSRouter for additional processing and go to 5.

[0141] b. If it is not an SMS message go to 7.

[0142] 5. Determine if the incoming SMS message is for a user/device oran SMS phone.

[0143] a. If it is for a user/device, go to 6.

[0144] b. If it is for an SMS phone, determine the Hardware/sms deviceto use from the Route.ini file 415, send the message to the appropriatedevice 416, and loop to 1.

[0145] 6. Determine if the user/device is online 412.

[0146] a. If the user/device is online, forward the message to theuser/device 413, store the message in the user/device profile 414, andloop to 1.

[0147] b. If the user/device is not online, store the message in theuser/device profile 414 and loop to 1.

[0148] 7. Determine if the message is a message for the system, an errormessage, or a success message 417.

[0149] a. If the message is for the system, parse the message andexecute the command 418.

[0150] b. If the message is an error message, go to 8.

[0151] c. If the message is a success message, deduct the cost of themessage from the user profile 419 and go to 8.

[0152] 8. Determine if the originating user/device is online 420.

[0153] a. If the originating user/device is online, forward the messageto the user/device 421, store the message in the user/device profile422, and loop to 1.

[0154] b. If the user/device is not online, store the message in theuser/device profile 422, and loop to 1.

[0155] The management servers can also be programmed to establishvirtual routing with use of the route.ini file. The route.ini filecontains the country codes and area codes for networks containing smsdevices, and other routing information for future messaging.

[0156] Every time a user sends a message to a number, the managementserver will remember the number by storing it in this file. Thus makingit easier for the message to get back to the intended recipient when areply is sent to the user. Since all routing information is based onuser/device information, it does not matter whether the message is PCoriginated or phone originated. The route.ini file also allowsnon-clients to reply to text messages from a client through the same smsdevice, in the non-client's cellular network, that forwarded the messageto the non-client.

[0157] The route.ini file also contains information on the cellularphone networks served by each sms device. When a message is sent to anon-client's telephone, the management server will access the route.inifile to determine which sms device to forward the message to.

[0158] The Route.ini file is a data file that follows a standardinitialization file format. It is used to allow the application toassign a virtual route to a user. Virtual routing allows the managementserver to assign one hardware device phone to many users, instead ofhaving to assign one number to one user.

[0159] Referring to FIGS. 9a through 9 c, in FIG. 9a, when user 1 (901)sends a message to cell phone user 1 (904), the management server 902uses virtual routing to establish a route for the message to take. Inthis case sms device 1 (903). Subsequently when cell phone user 1 sendsa message to sms device 1, the message will be routed back to user 1.

[0160] In FIG. 9b, the same thing happens when user 2 (905) sends amessage to cell phone user 2 (907). A route is established through smsdevice 1. When cell phone user 2 sends a message to device 1, themessage will be sent to user 2. This method of virtual routingestablishes a single sms device that provides a service to multipleusers.

[0161] Referring now to FIG. 9c, when user 2 sends a message to cellphone user 1, a route is established through sms device 2 (906) sinceuser 1 has already established the route to cell phone user 1 throughsms device 1. Thus when cell phone user 1 responds to sms device 2, themessage will be routed to user 2.

[0162] While FIGS. 9a-9 c illustrate virtual routing using sms devices;this type of routing is also used for gateway devices.

[0163] The computer that contains the management server also performsseveral other functions and is therefore loaded with several otherprograms. These programs include a routing program, a bridging program,a program that allows a client to send and retrieve messages on his orher computer using an HTML based interface, and a program that allowsclients to send and retrieve messages using email. The algorithm forthese programs is described below.

[0164] The routing program adds routing capabilities for interfacingwith other technologies and email. It also serves as the primary avenuefor routing phone-to-phone SMS messages. All messages that themanagement server receives are sent to the routing program. The routingprogram then forwards the messages based on the configuration of theuser's account. The routing program is referred to below as “SMSrouter.”Referring to FIG. 5, the routing program operates according to thefollowing event driven algorithm:

[0165] SMSrouter Algorithm

[0166] 1. Wait for user input.

[0167] a. If there is user input 501, go to 2.

[0168] 2. Determine if a connection is requested 502.

[0169] a. If a connection is requested, log into management server 503and go to 3.

[0170] b. If a connection is not requested, loop to 1.

[0171] 3. Check for stored messages 504.

[0172] a. If there are stored messages send messages to managementserver 505 and go to 4.

[0173] b. If there are no stored messages, go to 4.

[0174] 4. Check for messages from the management server 506.

[0175] a. If there are messages from the management server, parse themessage for delivery 507 and go to 5.

[0176] b. If there are no messages from the management server, go to 7.

[0177] 5. Determine if the message is from a gateway 508.

[0178] a. If the message is from a gateway, return the parsed message tothe management server 509 and go to 7.

[0179] b. If the message is not from a gateway, send the parsed messageto the email program 510 and the bridging program 511 and go to 6.

[0180] 6. Determine if the user account indicates that gateway deliveryis requested 512.

[0181] a. If gateway delivery is requested, send the message to agateway 513 and go to 7.

[0182] b. If gateway delivery is not requested, go to 7.

[0183] 7. Determine if a disconnection is requested 514.

[0184] a. If there is a disconnection request, disconnect and stop 515.

[0185] b. If there is no disconnection request, go to 8.

[0186] 8. Check for a connection to the management server 516.

[0187] a. If there is a connection, go to 4.

[0188] b. If there is no connection, go to 9.

[0189] 9. Determine if there is a connection request 517.

[0190] a. If there is a connection request, log into management server503 and go to 3.

[0191] b. If there is no connection request, go to 7.

[0192] Another program that can be placed on the management server isthe bridging program. The bridging program is not essential for thesystem disclosed herein. Instead, the bridging program is a program thatcan be added to the system to allow the system to exchange SMS messageswith the SMS centers of wireless carriers. The bridging program checksmessages, sent to it from the management server, to determine if themessages should be delivered to an external carrier. If the messagesshould be delivered to an external carrier, the bridging programconnects to the carriers network via HyperText Transfer Protocol (http).Likewise, a message in the wireless carrier's network can be deliveredto the system disclosed herein via http through the bridging program.The bridging program is referred to below as “SMBridge.” Referring toFIG. 7, the bridging program operates according to the following eventdriven algorithm:

[0193] SMSBridge Algorithm

[0194] 1. Wait for user input.

[0195] a. If there is user input 702, go to 2.

[0196] 2. Determine if there is a connection request 703.

[0197] a. If there is a connection request, log into management server704 and go to 3.

[0198] b. If there is no connection request, loop to 1.

[0199] 3. Determine if there is a message is from a wireless carrier'sSMSC 705.

[0200] a. If there is a message, parse the message to check for validity706 and go to 4.

[0201] b. If there is no message, go to 5.

[0202] 4. Determine if the message is valid, 707.

[0203] a. If the message is valid, send the message to the managementserver for processing 708 and go to 6.

[0204] b. If the message is not valid, discard message 709 and go to 6.

[0205] 5. Determine if there is a message from the routing program 710.

[0206] a. If there is a message, process the sender's accountinformation 712 and go to 6.

[0207] b. If there is no message, go to 7.

[0208] 6. Determine if the message is for a wireless carrier's SMSC.

[0209] a. If the message is for a SMSC, send the message to thecarrier's SMC 714 and go to 7.

[0210] b. If the message is not for an SMSC, discard the message 715 andgo to 8.

[0211] 7. Determine if a disconnection is requested 711.

[0212] a. If there is a disconnection request, disconnect and stop 716.

[0213] b. If there is no disconnection request, loop to 3.

[0214] The program that allows a user to send messages to a recipient'scellular telephone and receive messages from a cellular telephone on theuser's computer is referred to below as the “webserver” program. Thisprogram communicates with the management server and allows users to sendand receive SMS messages using an HTML based web interface. This programalso allows a user to access his or her account information via theuser's computer. To use this feature of the system, a user can log intothe server using a standard web browser. Referring to FIG. 8, thewebserver program operates according to the following event drivenalgorithm:

[0215] Webserver Algorithm

[0216] 1. Wait for user input.

[0217] a. If the is user input 801, go to 2.

[0218] 2. Determine if a connection is requested 802.

[0219] a. If a connection is requested, log into management server 803and go to 3.

[0220] b. If a connection is not requested, loop to 1.

[0221] 3. Determine if the user is requesting to send an SMS message804.

[0222] a. If the user is requesting to send an SMS message, parse themessage to check it for validity 805 and go to 4.

[0223] b. If the user is not requesting to send an SMS message, go to 5.

[0224] 4. Determine if the message is valid 806.

[0225] a. If the message is valid, send the message to the managementserver for processing 807 and go to 6.

[0226] b. If the message is not valid, discard message 808 and go to 6.

[0227] 5. Determine if the user is requesting account information 809.

[0228] a. If the user is requesting account information, display user'saccount information 810 and go to 6.

[0229] b. If the user is not requesting account information, go to 6.

[0230] 6. Determine if a disconnection is requested 812.

[0231] a. If there is a disconnection request, disconnect and stop 813.

[0232] b. If there is no disconnection request, loop to 4.

[0233] The program that allows a user to send messages to a recipient'scellular telephone and receive messages from a cellular telephone viathe user's email account is referred to below as the “mail gateway”program. This program communicates with the management server and allowsusers to send and receive SMS messages via an email account. To use thisfeature of the system a user can create a regular SMS message in theuser's email program, and addresses the message to the desiredrecipient's telephone number at the management server's address(recipient'snumber@managementserver.com). The mail gateway program willreceive the email, parse the email for the recipient's phone number andthe sender's account information, and send the message to the managementserver for delivery.

[0234] A user's account can also be set up to receive SMS messages viaemail. When an account has been set up to use this feature, the routingprogram will send the message to the mail gateway program for emaildelivery to a user's email address. Referring to FIG. 10, the mailgateway program operates according to the following event drivenalgorithm:

[0235] Mail Gateway Algorithm

[0236] 1. Wait for user input.

[0237] a. If the is user input 1001, go to 2.

[0238] 2. Determine if a connection is requested 1002.

[0239] a. If a connection is requested, log into management server 1003and go to 3.

[0240] b. If a connection is not requested, loop to 1.

[0241] 3. Check for incoming email messages 1004.

[0242] a. If there is an email message, parse the message to check forvalidity 1005 and go to 4.

[0243] b. If are no email messages, go to 5.

[0244] 4. Determine if the message is valid 1006.

[0245] a. If the message is valid, send the message to the managementserver for processing 1007 and go to 7.

[0246] b. If the message is not valid, discard message 1008 and go to 7.

[0247] 5. Check for messages from the routing program 1009.

[0248] a. If there is a message from the routing program, access theuser's account information 1010 and go to 6.

[0249] b. If there are no messages from the routing program, go to 7.

[0250] 6. Determine if the message is for a user's email address 1011.

[0251] a. If the message is for a users email address, send message tothe user's email address 1012 and go to 7.

[0252] b. If the message is not for a users email address, discardmessage 1013 and go to 7.

[0253] 7. Determine if a disconnection is requested 1014.

[0254] a. If there is a disconnection request, disconnect and stop 1015.

[0255] b. If there is no disconnection request, loop to 3.

[0256] It should be noted that the algorithms of the system disclosedherein, illustrated with the use of flow charts, are multithreaded eventdriven algorithms. Therefore, the system is capable of simultaneouslysending and receiving a plurality of messages to support requests fromone or more users.

[0257] According to the disclosure of this application, SMS messages canbe sent to people in different cellular networks over the Internet.Using the system, messages can be sent to non-client cellular telephonesfrom a client's telephone or personal computer. Messages can also besent and received by clients on their cellular phones or personalcomputers.

[0258] To send an SMS message over the system disclosed herein, a cliententers the message on a user device. If the client is sending themessage from a cell phone, the client connects with a hardware device inthe network where the client is located and the hardware device forwardsthe message to the management server. If the client is sending themessage from his or her computer, the client sends the message directlyto the management server.

[0259] The management server determines the route that the message musttake to reach the intended recipient, and routes the messageaccordingly. If the recipient can only receive the message via cellulartelephone the management server forwards the message to the hardwaredevice in the recipient's network, and the hardware device forwards themessage to the recipient. If the recipient can receive the message onhis or her email program, the management server also forwards the deviceto the recipient's email. If the recipient can retrieve the messageusing an HTML based interface, the management server stores the messagefor retrieval.

INDUSTRIAL APPLICABILITY

[0260] The invention has applicability to the field of cellularcommunications. In particular, the present invention describes a systemand method for sending SMS and text messages between wirelesscommunication networks. The system disclosed herein is comprised of avariety of physical components and these components can be programmed tooperate according to event driven algorithms. The physical components ofthe system include, sms devices (which are cellular telephones connectedto computers) servers, and user devices such as cellular telephones andpersonal computers.

[0261] The sms devices are connected to the Internet via standardconnection means and the servers are connected to the Internet viaregular TCP/IP connection. The user devices are connected to the systemvia Internet connections, in the case of a user's computer, or throughthe cellular telephone network, in the case of a user's cellulartelephone.

[0262] The system allows user's to send SMS/text messages to recipientsin other cellular telephone networks without using the network bridgesestablished by the user's cellular provider. Messages sent using thesystem disclosed herein can be sent from cellular telephones orcomputers, and they can be received on cellular telephones or computers.A user sending or receiving a message on a computer can use either anemail program or an HTML based interface.

[0263] This system is advantageous to users communicating to recipientsin distant networks because the user will not have worry about his orher text message being assigned a low priority by his or her cellularprovider.

[0264] In compliance with the statutes, the invention has been describedin language more or less specific as to structural features. It is to beunderstood, however, that the invention is not limited to the specificfeatures shown or described, since the means and construction shown ordescribed comprise preferred forms of putting the invention into effect.Additionally, while this invention is described in terms of being usedfor sending SMS messages and text messages between wirelesscommunication networks, it will be readily apparent to those skilled inthe art that the invention can be adapted to other uses as well.Therefore, the invention should not be construed as being solely limitedto use in SMS messaging, and is therefore, claimed in any of its formsor modifications within the legitimate and valid scope of the appendedclaims.

What is claimed is:
 1. A system for sending and receiving SMS messages,comprising: at least one hardware device located in a first wirelesscommunication network; the hardware device being connected to theInternet; the hardware device being programmed to receive and forwardSMS messages via the Internet and via wireless communication; at leastone other hardware device located in at least one other wirelesscommunication network; the hardware device being connected to theInternet; the hardware device being programmed to receive and forwardSMS messages via the Internet and via wireless communication; at leastone server device that is connected to the Internet; the server devicebeing programmed to receive SMS messages from the hardware devices viathe Internet, verify that the messages are SMS messages from authorizedusers of the system, determine which hardware device to forward the SMSmessages to, forward the SMS messages to the appropriate hardwaredevices via the Internet and maintain account information for debitingusers of the system; whereby a user located in one wirelesscommunication network, who desires to send an SMS message to a recipientin a different wireless communication network, can access the system viawireless communications to a hardware device in his or her wirelesscommunication network and forward the SMS message to the hardwaredevice, the hardware device will then forward the SMS message to theserver device via the internet; the server device will then verify thatthe message is an SMS message from an authorized user, determine whichother hardware device to forward the SMS message to and then forward theSMS message, via the internet, to the other hardware device in thedesired recipients network; the hardware device in the desiredrecipient's network will forward the SMS message to the desiredrecipient via wireless communications, the hardware device in thedesired recipient's network will send a confirmation message to theserver device once the desired recipient has received the SMS message;and, the server device will then debit the user's account.
 2. The systemof claim 1, wherein said at least one hardware device in a firstwireless communications network comprises a plurality of hardwaredevices; said at least one other hardware device in at least one otherwireless communications network comprises a plurality of hardwaredevices; and said at least one other wireless communications networkcomprises a plurality of wireless communications networks.
 3. The systemof claim 1, wherein the hardware devices are cellular telephonesconnected to a computer.
 4. The system of claim 3, wherein the hardwaredevice is further programmed to assist the server device in determiningwhich other hardware device to forward the SMS messages to, when suchmessages are received and forwarded by the system via wirelesscommunication.
 5. The system of claim 1 wherein the server device is acomputer.
 6. The system of claim 1 further comprising a plurality ofuser devices, the user devices being computers that are programmed tocommunicate with the server device via the internet; and the serverdevice is further programmed to communicate with the user devices viathe Internet.
 7. The system of claim 6, wherein the server device isfurther programmed to allow authorized users of the system to send SMSmessages from a user device to the server device, determine if the SMSmessage is to be forwarded to a hardware device via the internet, andforward the SMS message to the appropriate hardware device, which willthen forward the SMS message to the intended recipient via wirelesscommunication.
 8. The system of claim 6, wherein the server device isfurther programmed to forward SMS messages for authorized users of thesystem to the user's email account.
 9. The system of claim 6, whereinthe server device is further programmed to store SMS messages and allowauthorized users of the system to send and retrieve SMS messages via anHTML based interface on the Internet.
 10. The system of claim 1 whereinthe server device is further programmed to forward SMS messages towireless communications carriers and to receive SMS messages fromwireless communications carriers, and forward the SMS messages receivedfrom the wireless communications carriers to the desired recipient. 11.A system for sending and receiving SMS messages, comprising: a pluralityof hardware devices; the hardware devices being cellular telephonesconnected to a computer the hardware devices being connected to theInternet; the hardware devices being programmed to receive and forwardSMS messages via the Internet and via wireless communication; thehardware devices being located in a plurality of wireless communicationnetworks such that each wireless communications network contains aplurality of hardware devices; a plurality of server devices that areconnected to the Internet; the server devices being computers: theserver devices being programmed to receive SMS messages from thehardware devices via the Internet, verify that the messages are SMSmessages from authorized users of the system, determine which hardwaredevice to forward the SMS messages to, forward the SMS messages to theappropriate hardware devices via the Internet and maintain accountinformation for debiting users of the system; whereby a user located inone wireless communication network, who desires to send an SMS messageto a recipient in a different wireless communication network, can accessthe system via wireless communications to a hardware device in his orher wireless communication network and forward the SMS message to thehardware device, the hardware device will then forward the SMS messageto a server device via the internet; the server device will then verifythat the message is an SMS message from an authorized user, determinewhich hardware device to forward the SMS message to and then forward theSMS message, via the internet, to the hardware device in the desiredrecipients network; the hardware device in the desired recipient'snetwork will forward the SMS message to the desired recipient viawireless communications, the hardware device in the desired recipient'snetwork will send a confirmation message to the server device once thedesired recipient has received the SMS message; and, the server devicewill then debit the user's account.
 12. The system of claim 11, whereinat least one of the hardware devices is further programmed to assist theserver device in determining which other hardware device to forward theSMS messages to, when such messages are received and forwarded by thesystem via wireless communication.
 13. The system of claim 11 furthercomprising a plurality of user devices, the user devices being computersthat are programmed to communicate with the server device via theinternet; and the server device is further programmed to communicatewith the user devices via the Internet.
 14. The system of claim 13,wherein the server devices are further programmed to allow authorizedusers of the system to send SMS messages from a user device to a serverdevice, determine if the SMS message is to be forwarded to a hardwaredevice via the internet, and forward the SMS message to the appropriatehardware device, which will then forward the SMS message to the intendedrecipient via wireless communication.
 15. The system of claim 13,wherein the server devices are further programmed to forward SMSmessages for authorized users of the system to the user's email account.16. The system of claim 13, wherein the server devices are furtherprogrammed to store SMS messages and allow authorized users of thesystem to send and retrieve SMS messages via an HTML based interface onthe Internet.
 17. The system of claim 11 wherein the server devices arefurther programmed to forward SMS messages to wireless communicationscarriers and to receive SMS messages from wireless communicationscarriers, and forward the SMS messages received from the wirelesscommunications carriers to the desired recipient.
 18. The system ofclaim 11 wherein the server devices are further programmed to exchangeinformation concerning SMS messages and user accounts via the Internet.19. A system for sending and receiving SMS messages, comprising: aplurality of hardware devices; the hardware devices being cellulartelephones connected to a computer the hardware devices being connectedto the Internet; the hardware devices being programmed to receive andforward SMS messages via the Internet and via wireless communication;the hardware devices being located in a plurality of wirelesscommunication networks such that each wireless communications networkcontains a plurality of hardware devices; a plurality of server devicesthat are connected to the Internet; the server devices being computers:the server devices being programmed to receive SMS messages from thehardware devices via the Internet, verify that the messages are SMSmessages from authorized users of the system, determine which hardwaredevice to forward the SMS messages to, forward the SMS messages to theappropriate hardware devices via the Internet and maintain accountinformation for debiting users of the system; the server devices beingfurther programmed to communicate with the user devices via the Internetthe server devices being further programmed to allow authorized users ofthe system to send SMS messages from a user device to a server deviceand determine if the SMS message is to be forwarded to a hardware devicevia the internet; the server devices being further programmed to forwardSMS messages for authorized users of the system to the user's emailaccount; the server devices are further programmed to store SMS messagesand allow authorized users of the system to send and retrieve SMSmessages via an HTML based interface on the Internet; a plurality ofuser devices; the user devices being computers that are programmed tocommunicate with the server device via the Internet; whereby a userlocated in one wireless communication network, who desires to send anSMS message to a recipient in a different wireless communicationnetwork, can access the system via wireless communications or directlythrough his or her computer; the server device will verify that themessage is an SMS message from an authorized user, determine theappropriate routing to deliver the message and forward or store themessage accordingly; and when the intended recipient receives themessage via wireless communication, an email from the server device, orretrieving it from the server device via an HTML based interface, theserver device will debit the user's account.
 20. The system of claim 19,wherein at least one of the hardware devices is further programmed toassist the server device in determining which other hardware device toforward the SMS messages to, when such messages are received andforwarded by the system via wireless communication.
 21. The system ofclaim 19 wherein the server devices are further programmed to forwardSMS messages to wireless communications carriers and to receive SMSmessages from wireless communications carriers, and forward the SMSmessages received from the wireless communications carriers to thedesired recipient.
 22. The system of claim 19 wherein the server devicesare further programmed to exchange information concerning SMS messagesand user accounts via the Internet.
 23. A method for receiving an SMSmessage from a sender in one wireless communication network andforwarding the SMS message to a recipient in another wirelesscommunication network comprising the steps of: (a) receiving an SMSmessage on a hardware device, located in the message sender's wirelessnetwork that is connected to the Internet and programmed to receive andforward SMS messages via wireless communications and the Internet; (b)forwarding a message to a server device, via the Internet, that isprogrammed to receive and forward SMS messages via the Internet; (c)determining if the message is an SMS message from an authorized user;(d) determining the SMS message recipient and the recipient's wirelesscommunication network; (e) forwarding the SMS message, via the internet,from the server device to a hardware device, located in the recipient'swireless communication network, that is connected to the Internet andprogrammed to receive and forward SMS messages via wirelesscommunications and the Internet; and (f) forwarding the SMS message tothe desired recipient, via wireless communication, from the hardwaredevice in the desired recipient's network.
 24. The method of claim 23,comprising the additional step of: debiting the account of theappropriate user after the message is successfully forwarded.
 25. Themethod of claim 23, comprising the additional step of: notifying thesender after the message is successfully forwarded.
 26. A method forreceiving an SMS message from a sender in one wireless communicationnetwork and forwarding the SMS message to a recipient in anotherwireless communication network comprising the steps of: (a) receiving anSMS message on a hardware device, located in the message sender'swireless network that is connected to the Internet and programmed toreceive and forward SMS messages via wireless communications and theInternet; (b) forwarding a message to a server device, via the Internet,that is programmed to receive and forward SMS messages via the Internet;(c) determining if the message is an SMS message from an authorizeduser; (d) determining the SMS message recipient; (e) determining thatthe recipient is authorized to receive the SMS message via his or heremail account; and (f) forwarding the message from the server device tothe recipients email address.
 27. The method of claim 26, comprising theadditional step of: debiting the account of the appropriate user afterthe message is successfully forwarded.
 28. The method of claim 26,comprising the additional step of: notifying the sender after themessage is successfully forwarded.
 29. A method for receiving an SMSmessage from a sender in one wireless communication network andforwarding the SMS message to a recipient in another wirelesscommunication network comprising the steps of: (a) receiving an SMSmessage, via an email, on a server device that is programmed to receiveand forward SMS messages via the Internet; (b) determining if themessage is an SMS message from an authorized user; (c) determining theSMS message recipient and the recipient's wireless communicationnetwork; (d) forwarding the SMS message, via the internet, from theserver device to a hardware device, located in the recipient's wirelesscommunication network, that is connected to the Internet and programmedto receive and forward SMS messages via wireless communications and theInternet; and (e) forwarding the SMS message to the desired recipient,via wireless communication, from the hardware device in the desiredrecipient's network.
 30. The method of claim 29, comprising theadditional step of: debiting the account of the appropriate user afterthe message is successfully forwarded.
 31. The method of claim 29,comprising the additional step of: notifying the sender after themessage is successfully forwarded.
 32. A method for receiving an SMSmessage from a sender in one wireless communication network andforwarding the SMS message to a recipient in another wirelesscommunication network comprising the steps of: (a) receiving an SMSmessage on a hardware device, located in the message sender's wirelessnetwork that is connected to the Internet and programmed to receive andforward SMS messages via wireless communications and the Internet; (b)forwarding a message to a server device, via the Internet, that isprogrammed to receive and forward SMS messages via the Internet; (c)determining if the message is an SMS message from an authorized user;(d) determining the SMS message recipient; (e) determining that therecipient is authorized to retrieve the SMS message from the server viaan HTML based interface; and (f) storing the SMS message until therecipient retrieves it.
 33. The method of claim 32, comprising theadditional step of: debiting the account of the appropriate user afterthe message is successfully forwarded.
 34. The method of claim 32,comprising the additional step of: notifying the sender after themessage is successfully forwarded.
 35. A method for receiving an SMSmessage from a sender in one wireless communication network andforwarding the SMS message to a recipient in another wirelesscommunication network comprising the steps of: (a) receiving an SMSmessage, via an HTML based interface, on a server device that isprogrammed to receive and forward SMS messages via the Internet; (b)determining if the message is an SMS message from an authorized user;(c) determining the SMS message recipient and the recipient's wirelesscommunication network; (d) forwarding the SMS message, via the internet,from the server device to a hardware device, located in the recipient'swireless communication network, that is connected to the Internet andprogrammed to receive and forward SMS messages via wirelesscommunications and the Internet; and (e) forwarding the SMS message tothe desired recipient, via wireless communication, from the hardwaredevice in the desired recipient's network.
 36. The method of claim 35,comprising the additional step of: debiting the account of theappropriate user after the message is successfully forwarded.
 37. Themethod of claim 35, comprising the additional step of: notifying thesender after the message is successfully forwarded.